package com.jy.wms.dao;


import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.SysDictionary;
import com.jy.wms.pojo.WmsLibraryArea;
import com.jy.wms.pojo.WmsLibraryPosition;
import com.jy.wms.pojo.WmsWarehouse;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @ClassName: WmsLibraryPositionMapper.java
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author yjs
* @Date Tue Aug 29 15:58:05 GMT+08:00 2017
*/
public interface WmsLibraryPositionMapper extends BaseDao<WmsLibraryPosition> {

    /**
     * 查询空闲库位的数量
     * @param ckid 仓库ID
     * @return
     */
    public Integer getEmptyCount(@Param("ckid") String ckid);

/**
 * 插入一条记录
 * @param entity 实体对象
 * @return int
 */
 public Integer baseInsert(@Param("WmsLibraryPosition") WmsLibraryPosition entity);

    /**
     * id查询库区名称
     * @param sskqid
     * @return
     */
 public WmsLibraryArea searchKQ(@Param("sskqid") String sskqid,@Param("ckid") String ckid);
/**
 * 插入一条记录（匹配有值的字段）
 * @param entity 实体对象
 * @return int
 */
public Integer baseInsertSelective(@Param("WmsLibraryPosition") WmsLibraryPosition entity);

/**
 * 删除（根据主键ID删除）
 * @param id 主键
 * @return int
 */
public Integer baseDeleteByPrimaryKey(@Param("id") String id);

/**
 * 删除（根据ID 批量删除）
 * @param idList 主键ID列表
 * @return int
 */
 public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);


 /**
 * 分页查询
 * @param entity 实体
 * @return List<WmsLibraryPosition>
 */
 public List<WmsLibraryPosition>  baseSelectPage(@Param("WmsLibraryPosition") WmsLibraryPosition entity);

 /**
 * 查询（根据主键ID查询）
 * @param id 主键ID
 * @return User
 */
 public WmsLibraryPosition baseSelectByPrimaryKey(@Param("id") String id, @Param("ckid") String ckid, @Param("hzid") String hzid);

/**
 * 查询（根据ID 批量查询）
 * @param idList 主键ID列表
 * @return list
 */
 public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsLibraryPosition> idList);

/**
 *修改 （匹配有值的字段）
 * @param entity 主键ID列表
 * @return int
 */
 public Integer baseUpdateByPrimaryKeySelective(@Param("WmsLibraryPosition") WmsLibraryPosition entity);

/**
 *修改（根据主键ID修改）
 * @param entity 主键ID列表
 * @return int
 */
 public Integer baseUpdateByPrimaryKey(@Param("WmsLibraryPosition") WmsLibraryPosition entity);
    /**
     * 修改（根据ID 批量修改）
     * @param idList 主键ID列表
     * @return int
     */
    public Integer baseUpdateByPrimaryKeys(@Param("list") List<String> idList, @Param("hzId") String hzId);
 /**
  *查询空余库位
  * @return int
  */
 public List<WmsLibraryPosition> selectPostion(@Param("ckid") String ckid);

    /**
     * 根据货主ID查询货主拥有的库位
     * @param sshzid    货主ID
     * @return
     */
    public List<WmsLibraryPosition> selectPostionBySshzid(@Param("sshzid") String sshzid);

    /**
     * 根据货主ID及库位类型查询货主拥有的库位
     * @param sshzid    货主ID
     * @param lx    类型
     * @return
     */
    public List<WmsLibraryPosition> getDetectionBySshzid(@Param("sshzid") String sshzid,@Param("lx") String lx);

    /**
     * 查询货主拥有的及空闲的库位
     * @param sshzid    货主ID
     * @return
     */
    public List<WmsLibraryPosition> selectPostionBySshzidOrFree(@Param("sshzid") String sshzid,@Param("ckid") String ckid);
    /**
     * 查询（根据类型查询库位）
     * @param lx 主键ID
     * @return User
     */
    public List<WmsLibraryPosition>  baseSelectByLx(@Param("lx") String lx, @Param("mc") String mc,@Param("ckid") String ckid);

    /**
     * 查询全部库区
     * @return
     */
    public List<WmsLibraryArea> addSearchArea(@Param("mc") String mc,@Param("ckid") String ckid);
    /**
     * 查询（根据d_type查询）
     * @param d_type 主键ID
     * @return User
     */
    public List<SysDictionary>  baseSelectByType(@Param("d_type") String d_type);

    /**
     * 用户编号查询货主编号
     * @param id
     * @return
     */
    public String searchHzId(@Param("id") String id);
    /**
     * 添加前的去除重复
     * @param mc
     * @return
     */
    public WmsLibraryPosition searchADD(@Param("mc") String mc,@Param("ckid") String ckid);
    /**
     * 查询当前仓库信息
     * @return
     */
    public WmsWarehouse searchCK();

    /**
     *修 改 所有的改货主ID下所有库位归零
     * @param sshzid 所属货主ID
     * @return int
     */
    public Integer baseUpdateALLZero(@Param("sshzid") String sshzid);

    /**
     *修 改 改变货主拥有的库位
     * @param idList 需要修改的库位IDS
     * @param sshzid 所属货主ID
     * @return int
     */
    public Integer baseUpdateALLSshuid(@Param("list") List<String> idList, @Param("sshzid") String sshzid);


    /**
     *根据名称查询库位
     * @param mc 库位名称
     * @return int
     */
    public List<WmsLibraryPosition> selectBymc(@Param("sshzid") String sshzid, @Param("mc") String mc,@Param("ckid")String ckid);
    /**
     * 编辑保存去重
     * @param mc
     * @param id
     * @return
     */
    public WmsLibraryPosition searchADDs(@Param("mc") String mc, @Param("id") String id,@Param("ckid")String ckid);

    /**
     * 查询暂存区的库位模糊查询
     * @param mc
     * @param sshzid
     * @return
     */
    public List<WmsLibraryPosition> searchZcqkws(@Param("mc") String mc,@Param("lx") String lx, @Param("sshzid") String sshzid,@Param("ckid")String ckid);
}
